package com.ruoyi.ca.service;

import java.util.List;

import com.ruoyi.ca.domain.CaFpxx;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

/**
 * 发票信息Service接口
 *
 * @author ycong
 * @date 2024-04-13
 */
public interface ICaFpxxService {
    /**
     * 查询发票信息
     *
     * @param id 发票信息主键
     * @return 发票信息
     */
    public CaFpxx selectCaFpxxById(Long id);

    /**
     * 查询发票信息列表
     *
     * @param caFpxx 发票信息
     * @return 发票信息集合
     */
    public List<CaFpxx> selectCaFpxxList(CaFpxx caFpxx);

    /**
     * 新增发票信息
     *
     * @param caFpxx 发票信息
     * @return 结果
     */
    public int insertCaFpxx(CaFpxx caFpxx);

    /**
     * 修改发票信息
     *
     * @param caFpxx 发票信息
     * @return 结果
     */
    public int updateCaFpxx(CaFpxx caFpxx);

    /**
     * 批量删除发票信息
     *
     * @param ids 需要删除的发票信息主键集合
     * @return 结果
     */
    public int deleteCaFpxxByIds(Long[] ids);

    /**
     * 删除发票信息信息
     *
     * @param id 发票信息主键
     * @return 结果
     */
    public int deleteCaFpxxById(Long id);

    /**
     * 发票数据上传
     *
     * @param file
     * @param operName
     * @return
     */
    String importCaFpxx(MultipartFile file, String operName);

    /**
     * 发票下载
     *
     * @param fileName
     */
    void downLoad(String fileName, HttpServletResponse response);

    /**
     * 查询供方名称
     * @param gfmc
     * @return
     */
    List<String> queryGfmc(String gfmc);

    /**
     * 根据交易流水号查询发票信息
     * @param jylsh
     * @return
     */
    List<CaFpxx> queryFpxxListByJylsh(String jylsh);
}
